//package com.budwk.app.sqfw.controllers.admin.dataMigration;
//
//
//import cn.hutool.core.date.DateUtil;
//import cn.hutool.core.date.LocalDateTimeUtil;
//import com.alibaba.fastjson.JSONArray;
//import com.alibaba.fastjson.JSONObject;
//import com.budwk.app.common.config.AppException;
//import com.budwk.app.sqfw.constants.DictConstants;
//import com.budwk.app.sqfw.enums.ServiceTypeEnum;
//import com.budwk.app.sqfw.enums.SupportBusinessTypeEnum;
//import com.budwk.app.sqfw.models.Sqfw_formSummary;
//import com.budwk.app.sqfw.models.Sqfw_formSummary_new;
//import com.budwk.app.sqfw.services.SqfwFormSummaryService;
//import com.budwk.app.sqfw.services.SqfwFormsummaryNewService;
//import com.budwk.app.sqfwV2.component.DayingRoadPdfComponent;
//import com.budwk.app.sqfwV2.component.FireSafetyOnDayingRoadPdfService;
//import com.budwk.app.sqfwV2.dto.dto.ExtraProblemVo;
//import com.budwk.app.sqfwV2.dto.dto.FireSafetyOnDayingRoadPdfDTO;
//import com.budwk.app.sqfwV2.dto.dto.centuryCity.SafeCheckTaskParamDataDTO;
//import com.budwk.app.sqfwV2.dto.dto.dayingRoad.AccommodatePeopleVo;
//import com.budwk.app.sqfwV2.dto.dto.dayingRoad.ProblemBaseVo;
//import com.budwk.app.sqfwV2.dto.dto.dayingRoad.SandwichingVo;
//import com.budwk.app.sqfwV2.dto.entity.SqfwShopsBaseInfo;
//import com.budwk.app.sqfwV2.enums.RectificateTimeEnum;
//import com.budwk.app.sqfwV2.enums.dayingRoad.DayingRoadProblemEnum;
//import com.budwk.app.sqfwV2.enums.dayingRoad.FoodSupervisionRecordsEnum;
//import com.budwk.app.sqfwV2.enums.dayingRoad.KeySafetyIndustriesEnum;
//import com.budwk.app.sqfwV2.enums.dayingRoad.OtherPatrolContentsEnum;
//import com.budwk.app.sqfwV2.service.ShopsBaseInfoService;
//import com.budwk.app.sys.services.SysDictService;
//import com.budwk.app.sys.vo.SysDictVO;
//import com.budwk.app.util.StrUtil;
//import com.budwk.app.util.poiUtils.nutzBeanUtils.NutzIocUtils;
//import com.budwk.starter.common.result.Result;
//import lombok.extern.slf4j.Slf4j;
//import org.apache.commons.lang3.StringUtils;
//import org.nutz.dao.Cnd;
//import org.nutz.dao.util.cri.SqlExpressionGroup;
//import org.nutz.ioc.loader.annotation.Inject;
//import org.nutz.ioc.loader.annotation.IocBean;
//
//import java.time.*;
//import java.util.*;
//import java.util.concurrent.ThreadPoolExecutor;
//import java.util.stream.Collectors;
//
///**
// * 大营路数据迁移功能实现类
// */
//
//@IocBean
//@Slf4j
//public class DayRoadGrationComponent {
//
//    @Inject
//    private SqfwFormSummaryService sqfwFormSummaryService;
//    @Inject
//    private SysDictService sysDictService;
//    @Inject
//    private ShopsBaseInfoService shopsBaseInfoService;
//    @Inject
//    private SqfwFormsummaryNewService sqfwFormsummaryNewService;
//    @Inject("taskQueryExecutor")
//    private ThreadPoolExecutor taskQueryExecutor;
//
//    private List<Sqfw_formSummary> queryData(String isComplateMigrate) {
//        // 1 查询所有的数据
//        Cnd cnd = Cnd.NEW();
//        SqlExpressionGroup lam = cnd.where();
//        lam.andEquals(Sqfw_formSummary::getType, SupportBusinessTypeEnum.SAFETY_CHECK.getName())
//                .andNotIsNull(Sqfw_formSummary::getUnitId)
//                .andEquals(Sqfw_formSummary::getCounty, "溪北街道");
//        if (StringUtils.isNotEmpty(isComplateMigrate)) {
//            lam.andEquals(Sqfw_formSummary::getIsComplateMigrate, "1");
//        }
//        List<Sqfw_formSummary> list = sqfwFormSummaryService.query(cnd);
//        return list;
//    }
//
//    private Map<String, List<SysDictVO>> buildDict() {
//
//        // 批量查询数据字典
//        List<String> dictCodes = List.of(DictConstants.MAIN_BUSINESS_SCOPE, DictConstants.BUILDING_TYPE,
//                DictConstants.GAS_DELIVERY_COMPANY, DictConstants.GAS_NEW_USAGE_TYPES,
//                DictConstants.HAZARD_LEVEL_TYPES, DictConstants.EMPLOYEE,DictConstants.RIST_TYPES,
//                DictConstants.COMPETENT_DEPART_TYPES, DictConstants.USING_FUEL_STORAGE_TYPES,
//                DictConstants.RESIDENTS_SAFE_EXPOPRT, DictConstants.RESIDENTS_ESCAPE_WINDOW,
//                DictConstants.USAGE_FIRE_ELECTRICITY, DictConstants.MAIN_BUSINESS_SCOPE_SAFETY,
//                DictConstants.RESIDENTS_FORM,
//                DictConstants.ELECTRICAL_CIRCUIT_SITUATION, DictConstants.USAGE_ELECTRIC_BICYCLES,
//                DictConstants.FIRE_EXTINGUISHERS_LOCATION);
//        Map<String, List<SysDictVO>> allDictMap = new HashMap<>();
//        for (String dictCode : dictCodes) {
//            List<SysDictVO> sysDictVOS = sysDictService.listDictByCode(dictCode);
//            allDictMap.put(dictCode, sysDictVOS);
//        }
//        return allDictMap;
//    }
//
//    public Result<?> dataMigration(String isComplateMigrate) {
//        LocalDateTime s1 = LocalDateTime.now();
//        // 1 查询数据
//        List<Sqfw_formSummary> qyDataList = queryData(isComplateMigrate); // 需要迁移的数据
////        if (qyDataList.size() > 0) {
////            qyDataList = qyDataList.stream().filter(e -> StringUtils.isEmpty(e.getIsComplateMigrate()) || "2".equals(e.getIsComplateMigrate())).collect(Collectors.toList());
////        }
//        LocalDateTime s2 = LocalDateTime.now();
//        log.info("-----------------数据查询耗时------------： {}{}", Duration.between(s1, s2).toSeconds(), "秒");
//        // 2
//        LocalDateTime s3 = LocalDateTime.now();
//        Map<String, List<SysDictVO>> allDictMap = buildDict();
//        Map<String, String> inMap = IndustrySectorMaps();
//        // 3 开始数据操作
//        List<Sqfw_formSummary_new> datas = new ArrayList();
//        Map<String, Object> errorMap = new HashMap<>();
//        for (Sqfw_formSummary data : qyDataList) {
//            List<String> error = buildParam(data, datas, allDictMap, inMap);
//            if (error.size() > 0) {
//                errorMap.put(data.getId(), error);
//            }
//        }
//        if (errorMap.size() > 0) {
//            for (Map.Entry<String, Object> entry : errorMap.entrySet()) {
//                System.out.println("错误的数据为： id: "+ entry.getKey() + ", data: {" + JSONObject.toJSONString(entry.getValue()));
//            }
//            throw new AppException("数据异常，请处理");
//        }
//        // 按照时间升序
//        List<Sqfw_formSummary_new> queryData = datas.stream().sorted(Comparator.comparing(Sqfw_formSummary_new::getFillDate)).collect(Collectors.toList());
//        // 存储已经处理过的数据
//        List<Sqfw_formSummary_new> compareData = new ArrayList<>(); // 作为查询上次使用
//        List<Sqfw_formSummary_new> results = new ArrayList<>();
//        // 暂时先迁移以下数据  2024-01-01 开始的数据
//        for (Sqfw_formSummary_new result : queryData) {
//            // 区间
//            LocalDateTime fillDateTime = result.getFillDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(); // 检查时间
//            LocalDateTime startTime = LocalDateTimeUtil.parseDate("2024-05-29").atTime(LocalTime.now()); // 清洗数据开始时间
//            if (fillDateTime.isAfter(startTime)) {
//                beforeInsertForSummary(result, compareData, allDictMap);
//                compareData.add(result);
//                results.add(result);
//            }
//        }
//        LocalDateTime s4 = LocalDateTime.now();
//        log.info("-----------------处理数据耗时------------： {}{}", Duration.between(s3, s4).toSeconds(), "秒");
//        System.out.println("开始插入数据库********************************************");
//        // 插入数据
//        for (Sqfw_formSummary_new result : results) {
////            insertData(result, qyDataList);
//        }
//        LocalDateTime s6 = LocalDateTime.now();
//        log.info("-----------------插入数据库耗时------------： {}{}", Duration.between(s4, s6).toSeconds(), "秒");
//        log.info("最终数据为： {}", JSONObject.toJSONString(results));
//        return Result.success();
//    }
//
//    private void insertData(Sqfw_formSummary_new result, List<Sqfw_formSummary> qyDataList) {
//        Sqfw_formSummary sqfwFormSummaryMarigan = qyDataList.stream().filter(e -> e.getId().equals(result.getId())).findFirst().get();
//        sqfwFormSummaryMarigan.setIsComplateMigrate("2");
//        sqfwFormSummaryService.updateIgnoreNull(sqfwFormSummaryMarigan);
//        // 入库商铺
//        SqfwShopsBaseInfo shopsBase = JSONObject.toJavaObject(JSONObject.parseObject(result.getParamData()), SqfwShopsBaseInfo.class);
//        shopsBase.setServiceType(SupportBusinessTypeEnum.SAFETY_CHECK.getCode());
//        SqfwShopsBaseInfo shopsBaseInfo = shopsBaseInfoService.insertOrUpdateData(shopsBase, result);
//        result.setShopsBaseInfoId(shopsBaseInfo.getId());
//
//        Sqfw_formSummary_new fetch = sqfwFormsummaryNewService.fetch(result.getId());
//        if (fetch == null) {
//            sqfwFormsummaryNewService.insert(result);
//        } else {
//            sqfwFormsummaryNewService.updateIgnoreNull(result);
//        }
//    }
//
//    private List<SafeCheckTaskParamDataDTO> initData(List<SafeCheckTaskParamDataDTO> contents, List<SafeCheckTaskParamDataDTO> allDefaults) {
//        if (contents == null || contents.size() == 0) {
//            return allDefaults;
//        }
//        List<SafeCheckTaskParamDataDTO> datas = new ArrayList<>();
//        // 获取所有的问题默认值
//        for (SafeCheckTaskParamDataDTO safe : allDefaults) {
//            // 检查是否在默认值中存在
//            Optional<SafeCheckTaskParamDataDTO> optional = contents.stream().filter(e -> e.getFields().equals(safe.getFields())).findFirst();
//            if (optional.isEmpty()) {
//                // 不存在，将默认值加入到数据中存储
//                datas.add(safe);
//                continue;
//            }
//            // 存在 设置编号和描述信息
//            SafeCheckTaskParamDataDTO s = optional.get();
//            s.setRiskDesc(safe.getRiskDesc()).setRiskCode(safe.getRiskCode());
//            datas.add(handleSafeCheckTaskParamDataDTO(s));
//        }
//        return datas;
//    }
//
//    private SafeCheckTaskParamDataDTO handleSafeCheckTaskParamDataDTO(SafeCheckTaskParamDataDTO dataDTO) {
//        dataDTO.setRiskLevel(DayingRoadPdfComponent.getDictName(dataDTO.getRiskLevelCode(), null));
//        dataDTO.setRectificationType(RectificateTimeEnum.getNameByCode(dataDTO.getRectificationTypeCode()));
//        return dataDTO;
//    }
//
//    public static Sqfw_formSummary_new queryLastData(Sqfw_formSummary_new formSummary, FireSafetyOnDayingRoadPdfDTO pdfDTO, List<Sqfw_formSummary_new> compareData) {
//        if (compareData.size() == 0) {
//            return null;
//        }
//        List<Sqfw_formSummary_new> collect = compareData.stream().filter(e -> e.getType().equals(ServiceTypeEnum.SECURITY_INVESTIGATION.getName())
//                && e.getUnitId().equals(formSummary.getUnitId())).collect(Collectors.toList());
//        if (collect.size() == 0) {
//            return null;
//        }
//        List<Sqfw_formSummary_new> list = new ArrayList<>();
//        for (Sqfw_formSummary_new sqfwFormSummaryNew : collect) {
//            FireSafetyOnDayingRoadPdfDTO pdfDTO1 = JSONObject.parseObject(sqfwFormSummaryNew.getParamData(), FireSafetyOnDayingRoadPdfDTO.class);
//            if (pdfDTO1.getPlaceName().equals(pdfDTO.getPlaceName()) && pdfDTO1.getAddress().equals(pdfDTO.getAddress())) {
//                list.add(sqfwFormSummaryNew);
//            }
//        }
//        if (list.size() == 0) {
//            return null;
//        }
//        // 取出小于当前提交时间的所有数据
//        List<Sqfw_formSummary_new> formSummaryData = list.stream().filter(e -> e.getFillDate().getTime() < formSummary.getFillDate().getTime()).collect(Collectors.toList());
//        if (formSummaryData.size() > 0) {
//            return formSummaryData.get(0);
//        }
//        return null;
//    }
//
//    public void beforeInsertForSummary(Sqfw_formSummary_new formSummary, List<Sqfw_formSummary_new> compareData, Map<String, List<SysDictVO>> allDictMap) {
//        FireSafetyOnDayingRoadPdfDTO pdfDTO = JSONObject.parseObject(formSummary.getParamData(), FireSafetyOnDayingRoadPdfDTO.class);
//        // 1 重点安全排查行业参数校验
//        // 2 获取上一次的数据
//        Sqfw_formSummary_new lastData = queryLastData(formSummary, pdfDTO, compareData);
//        FireSafetyOnDayingRoadPdfDTO lastDataPdfDTO = null;
//        if (lastData != null) {
//            pdfDTO.setLastSummaryId(lastData.getId());
//            lastDataPdfDTO = JSONObject.parseObject(lastData.getParamData(), FireSafetyOnDayingRoadPdfDTO.class);
//        }
//        buildKeySafetyIndustriesText(pdfDTO, lastDataPdfDTO);
//        // 是否配备灭火器
//        // 1 初始化数据
//        pdfDTO.setOtherPatrolContents(initData(pdfDTO.getOtherPatrolContents(), OtherPatrolContentsEnum.getAllDefaults()));
//        DayRoadGratioUtil.buildEquippedFire(pdfDTO, lastDataPdfDTO, allDictMap);
//        // 25个问题
//        buildOtherPatrolContentsContent(pdfDTO, lastDataPdfDTO);
//        // 3 ■【食品监督检查记录】九个问题默认选项为【是】。
//        buildFoodContent(pdfDTO, lastDataPdfDTO);
//        // 5 报警器使用是否正常(报警器大于0显示)
//        SafeCheckTaskParamDataDTO p = pdfDTO.getIsAlarmNormal();
//        if (p == null) {
//            p = new SafeCheckTaskParamDataDTO();
//            p.setKey("-").setFields("isAlarmNormal");
//            pdfDTO.setIsAlarmNormal(p);
//        }
//        if (StringUtils.isEmpty(pdfDTO.getLiquefiedGasUsage())) {
//            pdfDTO.setLiquefiedGasUsage("1");
//        }
//        // 6 检查情况 检查状态
////        buildInspection(formSummary, pdfDTO);
//        // 住人问题
//        DayRoadGratioUtil.buildAccommodatePeopleVo(pdfDTO.getAccommodatePeople(), lastDataPdfDTO, allDictMap);
//        // 是否搭建夹层
//        DayRoadGratioUtil.buildSandwichingVo(pdfDTO, lastDataPdfDTO, allDictMap);
//        // 电气线路情况
//        DayRoadGratioUtil.buildElectricalCircuitSituation(pdfDTO, lastDataPdfDTO, allDictMap);
//        // 电动自行车使用情况
//        DayRoadGratioUtil.buildElectricBicyclesUse(pdfDTO, lastDataPdfDTO, allDictMap);
//        // 明火、高温加热、取暖设备等的使用地点
//        DayRoadGratioUtil.buildFireHighUsageArea(pdfDTO, lastDataPdfDTO);
//        // 是否存放易燃易爆危险品
//        DayRoadGratioUtil.buildCombustiblEexplosive(pdfDTO, lastDataPdfDTO);
//        // 其他隐患
//        DayRoadGratioUtil.buildOtherDanger(pdfDTO, lastDataPdfDTO);
//        // 消防设施的其他问题
//        DayRoadGratioUtil.buildFireOtherIssues(pdfDTO, lastDataPdfDTO);
//        // 构建内容体
//        pdfDTO.setRectificationContent(getRectificationContent(pdfDTO));
//        FireSafetyOnDayingRoadPdfDTO f = StrUtil.serializerData(FireSafetyOnDayingRoadPdfDTO.class, pdfDTO);
//        formSummary.setParamData(JSONObject.toJSONString(f));
//    }
//
//
//    private String getRectificationContent(FireSafetyOnDayingRoadPdfDTO pdfDTO) {
//        List<SafeCheckTaskParamDataDTO> list1 = pdfDTO.getOtherPatrolContents();
//        Optional<SafeCheckTaskParamDataDTO> o1 = list1.stream().filter(e -> RectificateTimeEnum.DEADLINE_RECTIFICATION.getCode().equals(e.getRectificationTypeCode())).findFirst();
//        if (o1.isPresent()) {
//            return getMessage(pdfDTO);
//        }
//        List<SafeCheckTaskParamDataDTO> list2 = pdfDTO.getKeySafetyIndustries();
//        Optional<SafeCheckTaskParamDataDTO> o2 = list2.stream().filter(e -> RectificateTimeEnum.DEADLINE_RECTIFICATION.getCode().equals(e.getRectificationTypeCode())).findFirst();
//        if (o2.isPresent()) {
//            return getMessage(pdfDTO);
//        }
//        SandwichingVo s = pdfDTO.getSandwichConstructionUse();
//        if (s != null) {
//            if (isXQ(s.getMezzaninFfloorSlab())) {
//                return getMessage(pdfDTO);
//            }
//            if (isXQ(s.getStaircaseBuildingMaterials())) {
//                return getMessage(pdfDTO);
//            }
//        }
//        // 该场所配备灭火器数量
//        if (isXQ(pdfDTO.getWhetherEquippedFire())) {
//            return getMessage(pdfDTO);
//        }
//        // 电气线路情况
//        if (isXQ(pdfDTO.getElectricalCircuitSituation())) {
//            return getMessage(pdfDTO);
//        }
//        // 电动自行车使用情况
//        if (isXQ(pdfDTO.getElectricBicyclesUse())) {
//            return getMessage(pdfDTO);
//        }
//        // 明火
//        if (isXQ(pdfDTO.getFireHighUsageArea())) {
//            return getMessage(pdfDTO);
//        }
//        // 是否存放易燃易爆危险品
//        if (isXQ(pdfDTO.getIsCombustiblEexplosive())) {
//            return getMessage(pdfDTO);
//        }
//        // 是否使用黑酒精
//        if (isXQ(pdfDTO.getIsBlackAlcoholUsed())) {
//            return getMessage(pdfDTO);
//        }
//        // 燃气报警器的数量
//        if (isXQ(pdfDTO.getGasAlarmsNumber())) {
//            return getMessage(pdfDTO);
//        }
//        // 报警器使用是否正常
//        if (isXQ(pdfDTO.getIsAlarmNormal())) {
//            return getMessage(pdfDTO);
//        }
//        // 其他隐患存在限期
//        List<SafeCheckTaskParamDataDTO> otherHiddenDangers = pdfDTO.getOtherHiddenDangers();
//        if (otherHiddenDangers != null && otherHiddenDangers.size() > 0) {
//            if (isXQ(otherHiddenDangers.get(0))) {
//                return getMessage(pdfDTO);
//            }
//        }
//        // 住人形式
//        AccommodatePeopleVo accommodatePeople = pdfDTO.getAccommodatePeople();
//        if (accommodatePeople != null) {
//            if (RectificateTimeEnum.DEADLINE_RECTIFICATION.getCode().equals(accommodatePeople.getRectificateType())) {
//                return getMessage(pdfDTO);
//            }
//        }
//        return "针对上述火灾隐患问题,现责令你单位内整改完毕，逾期未整改将被依法查处。整改期间，你单位应做好相应的消防安全防范措施";
//    }
//
//    private Boolean isXQ(SafeCheckTaskParamDataDTO s) {
//        if (s != null) {
//            // 楼梯建筑材料
//            if (RectificateTimeEnum.DEADLINE_RECTIFICATION.getCode().equals(s.getRectificationTypeCode())) {
//                return true;
//            }
//        }
//        return false;
//
//    }
//
//
//    private String getMessage(FireSafetyOnDayingRoadPdfDTO pdfDTO) {
//        String dateStr = LocalDateTimeUtil.format(pdfDTO.getRectificationDate(), "yyyy年MM月dd日");
//        String message = String.format("%s%s%s", "针对上述火灾隐患问题,现责令你", dateStr, "前整改完毕，并报备案，逾期不改正将被依法查处。整改期间，你单位应做好相应的消防安全防范");
//        return message;
//    }
//
//
//
//    private void buildKeySafetyIndustriesText(FireSafetyOnDayingRoadPdfDTO pdfDTO, FireSafetyOnDayingRoadPdfDTO lastDataPdfDTO) {
//        // 1 初始化数据
//        List<SafeCheckTaskParamDataDTO> datas = initData(pdfDTO.getKeySafetyIndustries(), KeySafetyIndustriesEnum.getAllDefaults());
//        pdfDTO.setKeySafetyIndustries(datas);
//        // 2 找出存在的问题
//        // 组装获取问题默认值
//        List<ProblemBaseVo> problemBaseVoDefaults = KeySafetyIndustriesEnum.getProblemBaseVoDefaults();
//        List<SafeCheckTaskParamDataDTO> lastExistProblems = lastDataPdfDTO != null ? lastDataPdfDTO.getExtraKeyParam().getExistProblems() : null;
//        pdfDTO.setExtraKeyParam(getExtraProblemVo1(problemBaseVoDefaults, datas, lastExistProblems));
//    }
//
//
//
//    private void buildOtherPatrolContentsContent(FireSafetyOnDayingRoadPdfDTO pdfDTO, FireSafetyOnDayingRoadPdfDTO lastDataPdfDTO) {
//        //需要第二次使用对象p1
//        // 2 找出存在的问题
//        // 组装获取问题默认值
//        List<ProblemBaseVo> problemBaseVoDefaults = OtherPatrolContentsEnum.getProblemBaseVoDefaults();
//        List<SafeCheckTaskParamDataDTO> lastExistProblems = lastDataPdfDTO != null ? lastDataPdfDTO.getExtraOtherParam().getExistProblems() : null;
//        pdfDTO.setExtraOtherParam(getExtraProblemVo1(problemBaseVoDefaults, pdfDTO.getOtherPatrolContents(), lastExistProblems));
//    }
//
//    private void buildFoodContent(FireSafetyOnDayingRoadPdfDTO roadPdfDTO, FireSafetyOnDayingRoadPdfDTO lastDataPdfDTO) {
//        // 1 初始化数据
//        List<SafeCheckTaskParamDataDTO> datas = initData(roadPdfDTO.getFoodSupervisionRecords(), FoodSupervisionRecordsEnum.getAllDefaults());
//        roadPdfDTO.setFoodSupervisionRecords(datas);
//        // 2 找出存在的问题
//        List<ProblemBaseVo> defaults = FoodSupervisionRecordsEnum.getProblemBaseVoDefaults();
//        List<SafeCheckTaskParamDataDTO> lastExistProblems = lastDataPdfDTO != null ? lastDataPdfDTO.getExtraFoodParam().getExistProblems() : null;
//        roadPdfDTO.setExtraFoodParam(getExtraProblemVo1(defaults, datas, lastExistProblems));
//    }
//
//    private ExtraProblemVo getExtraProblemVo1(List<ProblemBaseVo> defaults, List<SafeCheckTaskParamDataDTO> datas, List<SafeCheckTaskParamDataDTO> lastExistProblems) {
//        // 1 获取存在的问题选项
//        List<SafeCheckTaskParamDataDTO> existProblems = FireSafetyOnDayingRoadPdfService.getExistProblems(datas, defaults);
//        // 2 获取存在的所有有问题的数据
//        if (lastExistProblems != null) {
//            for (SafeCheckTaskParamDataDTO s : lastExistProblems) {
//                // 本次问题是否在上次的问题中
//                Optional<SafeCheckTaskParamDataDTO> optional = existProblems.stream().filter(e -> e.getFields().equals(s.getFields())).findAny();
//                if (optional.isEmpty()) {
//                    // 不在上次的问题中 说明选择的是已整改
//                    SafeCheckTaskParamDataDTO safe = new SafeCheckTaskParamDataDTO();
//                    // 【判断上次的数据是不是期限整改
//                    if (!RectificateTimeEnum.isNowRectification(s.getRectificationTypeCode())) {
//                        ProblemBaseVo p = defaults.stream().filter(e -> e.getCode().equals(s.getFields())).findAny().get();
//                        safe.setKey(p.getDefaultValue())
//                                .setFields(p.getCode())
//                                .setRiskCode(p.getNumber())
//                                .setRiskDesc(p.getDesc())
//                                .setIsRectification(true)
//                                .setRiskLevel(s.getRiskLevel())
//                                .setRiskLevelCode(s.getRiskLevelCode())
//                                .setProblemDesc(p.getDesc());
//                        existProblems.add(safe);
//                    }
//                }
//            }
//        }
//        ExtraProblemVo vo = new ExtraProblemVo();
//        // 存在的问题编号
//        List<Integer> existProblemIds = existProblems.stream()
//                .sorted(Comparator.comparing(SafeCheckTaskParamDataDTO::getRiskCode))
//                .map(SafeCheckTaskParamDataDTO::getRiskCode)
//                .map(Integer::valueOf)
//                .collect(Collectors.toList());
//        // 已整改的问题编号
//        List<Integer> existYesProblemIds = existProblems.stream()
//                .filter(SafeCheckTaskParamDataDTO::getIsRectification)
//                .sorted(Comparator.comparing(SafeCheckTaskParamDataDTO::getRiskCode))
//                .map(SafeCheckTaskParamDataDTO::getRiskCode)
//                .map(Integer::valueOf)
//                .collect(Collectors.toList());
//        // 未整改的问题编号
//        List<Integer> existNoProblemIds = existProblems.stream()
//                .filter(e -> RectificateTimeEnum.DEADLINE_RECTIFICATION.getCode().equals(e.getRectificationTypeCode()))
//                .sorted(Comparator.comparing(SafeCheckTaskParamDataDTO::getRiskCode))
//                .map(SafeCheckTaskParamDataDTO::getRiskCode)
//                .map(Integer::valueOf)
//                .collect(Collectors.toList());
//        // 立即整改的问题编号
//        List<Integer> existImmediateProblemIds = existProblems.stream()
//                .filter(e -> RectificateTimeEnum.IMMEDIATE_RECTIFICAIOTN.getCode().equals(e.getRectificationTypeCode()))
//                .sorted(Comparator.comparing(SafeCheckTaskParamDataDTO::getRiskCode))
//                .map(SafeCheckTaskParamDataDTO::getRiskCode)
//                .map(Integer::valueOf)
//                .collect(Collectors.toList());
//
//        vo.setExistProblems(existProblems)
//                .setExistProblemIds(existProblemIds)
//                .setExistYesProblemIds(existYesProblemIds)
//                .setExistNoProblemIds(existNoProblemIds)
//                .setExistImmediateProblemIds(existImmediateProblemIds)
//                .setIsProblemAllOne(existNoProblemIds.size() <= 0);
//        return vo;
//    }
//
//    private List<String> buildParam(Sqfw_formSummary oldData, List<Sqfw_formSummary_new> datas, Map<String, List<SysDictVO>> allDictMap, Map<String, String> inMap) {
//        // 构建基本参数
//        log.info("start build............................. id: {}", oldData.getId());
//        Sqfw_formSummary_new newData = buildFormSummaryParam(oldData);
//        List<String> error = buildParamData(oldData, newData, allDictMap, inMap);
//        datas.add(newData);
//        return error;
//    }
//    private Sqfw_formSummary_new buildFormSummaryParam(Sqfw_formSummary oldData) {
//        Sqfw_formSummary_new newData = new Sqfw_formSummary_new();
//        newData.setSqfwId(oldData.getSqfwId())
//                .setSqfwFlowId(oldData.getSqfwFlowId())
//                .setUnitId(oldData.getUnitId())
//                .setCreateDate(oldData.getCreateDate())
//                .setCreateBy(oldData.getCreateBy())
//                .setUpdateBy(oldData.getUpdateBy())
//                .setUpdateDate(oldData.getUpdateDate())
//                .setCreateUserName(oldData.getCreateUserName())
//                .setCreateUserPhone(oldData.getCreateUserPhone())
//                .setUpdateUserName(oldData.getUpdateUserName())
//                .setUpdateUserPhone(oldData.getUpdateUserPhone())
//                .setType(oldData.getType())
//                .setUnitName(oldData.getUnitName())
//                .setWorkOrderId(oldData.getWorkOrderId())
//                .setFillDate(oldData.getFillDate())
//                .setProvince(oldData.getProvince())
//                .setCity(oldData.getCity())
//                .setDistrict(oldData.getDistrict())
//                .setCounty(oldData.getCounty())
//                .setCommunity(oldData.getCommunity())
//                .setId(oldData.getId())
//                .setCheckStatus(oldData.getCheckStatus());
//        return newData;
//    }
//
//
//    private FireSafetyOnDayingRoadPdfDTO buildBaseInfo(Sqfw_formSummary sqfwFormSummary) {
//        FireSafetyOnDayingRoadPdfDTO f = new FireSafetyOnDayingRoadPdfDTO();
//        f.setPlaceName(StrUtil.formatStr(sqfwFormSummary.getA1()))
//                .setOperator(StrUtil.formatStr(sqfwFormSummary.getA2()))
//                .setAddress(StrUtil.formatStr(sqfwFormSummary.getA3()))
//                .setSocialCreditCode(StrUtil.formatStr(sqfwFormSummary.getA4()))
//                .setPlaceArea(StrUtil.formatStr(sqfwFormSummary.getA11()))
//                .setRectifyingDangersMeasures(StrUtil.formatStr(sqfwFormSummary.getA12()))
//                .setOperatorTelephone(StrUtil.formatStr(sqfwFormSummary.getA8()));
//        return f;
//    }
//
//    private String getCode(String str, String dictParentCode, String fields, List<String> errors, Map<String, List<SysDictVO>> allDictMap ) {
//        if (StringUtils.isNotEmpty(str)) {
//            List<SysDictVO> sysDictVOS = allDictMap.get(dictParentCode);
//            Optional<SysDictVO> optional = sysDictVOS.stream().filter(e -> str.equals(e.getName())).findFirst();
//            if (optional.isPresent()) {
//                return optional.get().getCode();
//            }
//            errors.add(fields);
//        }
//        return null;
//    }
//
//    private Boolean getYes(String value, String fields, List<String> errors) {
//        if (StringUtils.isNotEmpty(value)) {
//            if (value.equals("是")) {
//                return true;
//            }else if (value.equals("否")) {
//                return false;
//            } else {
//                errors.add(fields);
//            }
//        }
//        return null;
//    }
//
//    private RectificateTimeEnum getRectificateTimeEnum(Sqfw_formSummary sqfwFormSummary) {
//        String a9 = sqfwFormSummary.getA9();
//        String a10 = sqfwFormSummary.getA10();
//        if (StringUtils.isNotEmpty(a9) && StringUtils.isNotEmpty(a10)) {
//            return RectificateTimeEnum.IMMEDIATE_RECTIFICAIOTN;
//        }
//        return RectificateTimeEnum.DEADLINE_RECTIFICATION;
//    }
//
//    private void buildA5(Sqfw_formSummary sqfwFormSummary, FireSafetyOnDayingRoadPdfDTO f, List<String> errors, Map<String, List<SysDictVO>> allDictMap) {
//        String a5 = sqfwFormSummary.getA5();
//        if (StringUtils.isNotEmpty(a5)) {
//            if (a5.equals("美容、足疗、洗浴、按摩")) {
//                f.setMainBusinessScope("main_business_scope_beauty");
//                return;
//            }
//            if (a5.equals("汽修")) {
//                f.setMainBusinessScope("main_business_scope_repair");
//                return;
//            }
//            List<SysDictVO> sysDictVOS = allDictMap.get(DictConstants.MAIN_BUSINESS_SCOPE);
//            Optional<SysDictVO> optional = sysDictVOS.stream().filter(e -> a5.equals(e.getName())).findFirst();
//            if (optional.isPresent()) {
//                f.setMainBusinessScope(optional.get().getCode());
//                return;
//            }
//            List<SysDictVO> sysDictVOS1 = allDictMap.get(DictConstants.MAIN_BUSINESS_SCOPE_SAFETY);
//            Optional<SysDictVO> optional1 = sysDictVOS1.stream().filter(e -> a5.equals(e.getName())).findFirst();
//            if (optional1.isPresent()) {
//                f.setMainBusinessScope(optional1.get().getCode());
//                return;
//            }
//            errors.add("a5主要经营范围：" + a5);
//        }
//    }
//
//    private void buildA16(Sqfw_formSummary sqfwFormSummary, FireSafetyOnDayingRoadPdfDTO f, List<String> errors, Map<String, List<SysDictVO>> allDictMap, Map<String, String> inMap) {
//        if (StringUtils.isNotEmpty(sqfwFormSummary.getA16())) {
//            String strValue = inMap.get(sqfwFormSummary.getA16());
//            if (StringUtils.isNotEmpty(strValue)) {
//                f.setIndustrySector(strValue);
//            } else {
//                if (sqfwFormSummary.getA16().equals("服装")) {
//                    f.setIndustrySector("industry_sector_clothing_store");
//                } else if(sqfwFormSummary.getA16().equals("美容、足疗、洗浴、按摩")) {
//                    f.setIndustrySector("industry_sector_beauty_foot_therapy");
//                } else if(sqfwFormSummary.getA16().equals("银行")) {
//                    f.setIndustrySector("industry_sector_other");
//                } else {
//                    if (sqfwFormSummary.getCreateDate().getTime() == DateUtil.parse("0001-01-01 00:00:00.000").getTime()) {
//                        f.setIndustrySector("industry_sector_other");
//                    }
//                }
//            }
//        }
//    }
//
//    private void buildA14(Sqfw_formSummary sqfwFormSummary, FireSafetyOnDayingRoadPdfDTO f, Map<String, List<SysDictVO>> allDictMap) {
//        String a14 = sqfwFormSummary.getA14();
//        if (StringUtils.isNotEmpty(a14)) {
//            List<SysDictVO> sysDictVOS = allDictMap.get(DictConstants.GAS_DELIVERY_COMPANY);
//            Optional<SysDictVO> optional = sysDictVOS.stream().filter(e -> a14.equals(e.getName())).findFirst();
//            if (optional.isPresent()) {
//                f.setGasDeliveryCompany(optional.get().getCode());
//                return;
//            } else {
//                f.setGasDeliveryCompany("delivery_company_other").setGasDeliveryCompanyName(a14);
//            }
//        }
//    }
//
//    private List<String> buildParamData(Sqfw_formSummary sqfwFormSummary, Sqfw_formSummary_new sNew, Map<String, List<SysDictVO>> allDictMap, Map<String, String> inMap) {
//        List<String> errors = new ArrayList<>();
//        // 构造基本参数
//        FireSafetyOnDayingRoadPdfDTO f = buildBaseInfo(sqfwFormSummary);
//        buildA5(sqfwFormSummary, f, errors, allDictMap);
//        f.setBuildingType(getCode(sqfwFormSummary.getA6(), DictConstants.BUILDING_TYPE, "a6", errors, allDictMap));
//        // 瓶装液化气,用电 用火用电情况
//        String a7 = sqfwFormSummary.getA7();
//        if (StringUtils.isNotEmpty(a7)) {
//            String[] split = a7.split(",");
//            List<String> list = new ArrayList<>();
//            for (String value : split) {
//                list.add(getCode(value, DictConstants.USAGE_FIRE_ELECTRICITY, "a7", errors, allDictMap));
//            }
//            f.setFireAndElectricityUsage(String.join(",", list));
//        }
//        f.setIsNightMarketStalls(getYes(sqfwFormSummary.getA13(), "a13", errors));
//        // 送气公司
//        buildA14(sqfwFormSummary, f, allDictMap);
//        // 燃料使用情况 其他燃料
//        buildA15(sqfwFormSummary, f, errors, allDictMap);
//        // 行业领域
//        buildA16(sqfwFormSummary, f, errors, allDictMap, inMap);
//
//        f.setRiskType(getCode(sqfwFormSummary.getA17(), DictConstants.RIST_TYPES, "a17" + sqfwFormSummary.getA17(), errors, allDictMap));
//        f.setPeers(sqfwFormSummary.getA18()).setCheckedUnitLeader(sqfwFormSummary.getA19());
//        // 获取整改类型 是期限还是立即整改
//        RectificateTimeEnum rectificateTimeEnum = getRectificateTimeEnum(sqfwFormSummary);
//        // 其他隐患
//        buildOtherHiddenDangers(sqfwFormSummary, rectificateTimeEnum, f, errors);
//        // 是否定期开展消防培训和人员上岗前消防培训。
//        f.setIsPeriodicalAirAndPersonTrain(getYes(sqfwFormSummary.getA21(), "a21", errors));
//        f.setPersonnelOneThreeSkills(getYes(sqfwFormSummary.getA22(), "a22", errors));
//        buildSandwichingVo(sqfwFormSummary, f);
//        buildAccommodatePeopleVo(sqfwFormSummary, f, errors, allDictMap);
//        f.setFireHouseAlarmSystem(isHive(sqfwFormSummary.getA41(), DayingRoadProblemEnum.initData(DayingRoadProblemEnum.ONE), "a41", errors));
//        f.setAutomaticSprinklerSystem(isHive(sqfwFormSummary.getA42(), DayingRoadProblemEnum.initData(DayingRoadProblemEnum.TWO), "a42", errors));
//        // 室内消火栓
//        buildIndoorFireHydrant(sqfwFormSummary, f, rectificateTimeEnum);
//        // 消防设施的其他问题
//        buildFireOtherIssues(sqfwFormSummary, f);
//        buildElectricalCircuitSituation(sqfwFormSummary, f, errors, rectificateTimeEnum); // 电气线路情况
//        buildElectricBicyclesUse(sqfwFormSummary, f, errors, rectificateTimeEnum); // 电动自行车使用情况（无，室内充电，其他）
//        buildFireHighUsageArea(sqfwFormSummary, f, errors, rectificateTimeEnum); // 是否使用明火、高温加热、取暖设备等（否，使用地点）
//        buildIsCombustiblEexplosive(sqfwFormSummary, f, errors, rectificateTimeEnum); // 是否存放易燃易爆危险品(否，情况)
//        buildIsBlackAlcoholUsed(sqfwFormSummary, f, errors, rectificateTimeEnum); // 是否使用黑酒精。
//        // 员工人数 字典
//        buildPerson(sqfwFormSummary, f, errors, allDictMap);
//
//        f.setMainProducts(sqfwFormSummary.getA52())
//                .setLiquefiedGasNumber(sqfwFormSummary.getA53())
//                .setMarketStorageAddress(sqfwFormSummary.getA54());
//        // 燃气报警器数量，是否正常使用燃气报警器  1#是
//        buildGasAlarmsNumber(sqfwFormSummary, f, errors, rectificateTimeEnum); // 燃气报警器数量，是否正常使用燃气报警器
//        f.setPurchasingChannelsPhoto(sqfwFormSummary.getA56())
//                .setCompetentDepartment(getCode(sqfwFormSummary.getA63(), DictConstants.COMPETENT_DEPART_TYPES, "a63", errors, allDictMap))
//                .setRiskControlMeasures(sqfwFormSummary.getA58())
//                .setVisitPictures(sqfwFormSummary.getA67())
//                .setDeptJoinLawSituation(sqfwFormSummary.getA65());
//        String a25 = sqfwFormSummary.getA25();
//        if (StringUtils.isNotEmpty(a25)) {
//            f.setRectificationDate(LocalDateTimeUtil.parseDate(a25));
//        }
//        buildGasStorage(sqfwFormSummary, f, errors, rectificateTimeEnum, allDictMap); // 燃料存储总量（日/升），使用醇基燃料存储容器
//        // 食品问题
//        buildFoodProblem(sqfwFormSummary, f, errors, rectificateTimeEnum); // 食品问题9个
//        //  重点安全巡查问题 31个问题数组
//        buildKeySafetyIndustries(sqfwFormSummary, f, errors, rectificateTimeEnum); // 重点安全巡查问题 31个问题数组
//        //  其余巡查问题 25个问题数组
//        buildOtherPatrolContents(sqfwFormSummary, f, errors, rectificateTimeEnum, allDictMap); // 其余巡查问题
//        // a28是否 是否经营副食 whetherStapleFood
//        buildWhetherStapleFood(sqfwFormSummary, f, errors, rectificateTimeEnum); // 是否经营副食
//        buildA24(sqfwFormSummary, f, errors, rectificateTimeEnum);
//        buildIsThreeOneSystem(sqfwFormSummary, f, errors, rectificateTimeEnum);
//
//        Date fillDate = sNew.getFillDate();
//        if (fillDate != null) {
//            f.setInspectionDate(fillDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime());
//        } else {
//            errors.add("fillDate");
//        }
//        f.setBusinessLicenseName(sqfwFormSummary.getLicense());
//        FireSafetyOnDayingRoadPdfDTO pdfDTO = StrUtil.serializerData(FireSafetyOnDayingRoadPdfDTO.class, f);
//        sNew.setParamData(JSONObject.toJSONString(pdfDTO));
//        return errors;
//    }
//
//    private void buildPerson(Sqfw_formSummary formSummary, FireSafetyOnDayingRoadPdfDTO f, List<String> errors, Map<String, List<SysDictVO>> allDictMap) {
//        String a51 = formSummary.getA51();
//        if (StringUtils.isNotEmpty(a51)) {
//            List<SysDictVO> sysDictVOS = allDictMap.get(DictConstants.EMPLOYEE);
//            Optional<SysDictVO> optional = sysDictVOS.stream().filter(e -> a51.equals(e.getName())).findFirst();
//            if (optional.isPresent()) {
//                f.setStaffNumber(optional.get().getCode());
//                return;
//            }
//            int number = Integer.parseInt(a51);
//            if (number > 10) {
//                f.setStaffNumber("employee_moreten");
//                return;
//            }
//            errors.add("a51员工人数：" + a51);
//        }
//    }
//
//    private void buildA15(Sqfw_formSummary formSummary, FireSafetyOnDayingRoadPdfDTO f, List<String> errors, Map<String, List<SysDictVO>> allDictMap) {
//        String a15 = formSummary.getA15();
//        if (StringUtils.isNotEmpty(a15)) {
//            List<String> dicts = new ArrayList<>();
//            String[] a15s = a15.split(",");
//            for (String value : a15s) {
//                if (value.equals("其他燃料")) {
//                    dicts.add("gas_usage_other_fuels");
//                } else {
//                    String code = getCode(value, DictConstants.GAS_NEW_USAGE_TYPES, "a15燃料使用情况：" + a15, errors, allDictMap);
//                    dicts.add(code);
//                }
//            }
//            f.setGasUgage(String.join(",", dicts));
//        }
//    }
//
//    public static Map<String, String> IndustrySectorMaps() {
//        // 1 从数据字典中获取
//        SysDictService dictService = NutzIocUtils.getBean(SysDictService.class);
//        List<SysDictVO> dictVOS = dictService.listDictByCode(DictConstants.INDUSTY_SECTOR_TYPES);
//        Map<String, String> map = dictVOS.stream().collect(Collectors.toMap(SysDictVO::getName, SysDictVO::getCode));
//        // 2 以下不在数据字典中
//        map.put("旅馆", DictConstants.INDUSTY_SECTOR_HOTEL);
//        map.put("教育培训", DictConstants.INDUSTY_SECTOR_EDUCATION);
//        map.put("医疗", DictConstants.INDUSTY_SECTOR_MEDICAL);
//        map.put("美容足疗洗浴按摩", DictConstants.INDUSTY_SECTOR_FOOT);
//        map.put("餐饮", DictConstants.INDUSTY_SECTOR_RESTAU);
//        return map;
//    }
//
//    private void buildIsThreeOneSystem(Sqfw_formSummary formSummary, FireSafetyOnDayingRoadPdfDTO f, List<String> errors, RectificateTimeEnum rectificateTimeEnum) {
//        String a68 = formSummary.getA68();
//        SafeCheckTaskParamDataDTO isThreeOneSystem = new SafeCheckTaskParamDataDTO();
//        isThreeOneSystem.setKey("true");
//        if (StringUtils.isNotEmpty(a68)) {
//            if ("是".equals(a68)) {
//                isThreeOneSystem.setKey("true");
//            } else if ("否".equals(a68)) {
//                isThreeOneSystem.setKey("false");
//            } else {
//                errors.add("a68");
//            }
//        }
//        f.setIsThreeOneSystem(isThreeOneSystem);
//    }
//    private void buildA24(Sqfw_formSummary formSummary, FireSafetyOnDayingRoadPdfDTO f, List<String> errors, RectificateTimeEnum rectificateTimeEnum) {
//        String a24 = formSummary.getA24();
//        if (StringUtils.isNotEmpty(a24)) {
//            f.setExistDangerStr(a24).setIsExistDanger(true);
//        }
//        String a26 = formSummary.getA26();
//        if (StringUtils.isNotEmpty(a26)) {
//            if (a26.equals("已整改")) {
//                f.setIsExistDanger(true);
//            }
//            if (a26.equals("未整改")) {
//                f.setIsExistDanger(false);
//                return;
//            }
//        }
//        String a27 = formSummary.getA26();
//        if (StringUtils.isNotEmpty(a27)) {
//            if (a27.equals("已整改")) {
//                f.setIsExistDanger(true);
//            }
//            if (a27.equals("未整改")) {
//                f.setIsExistDanger(false);
//            }
//        }
//    }
//    private void buildOtherPatrolContents(Sqfw_formSummary formSummary, FireSafetyOnDayingRoadPdfDTO f, List<String> errors,
//                                          RectificateTimeEnum rectificateTimeEnum, Map<String, List<SysDictVO>> allDictMap) {
//        String a23 = formSummary.getA23();
//        List<SafeCheckTaskParamDataDTO> allDefaults = OtherPatrolContentsEnum.getAllDefaults();
//        if (StringUtils.isNotEmpty(a23)) {
//            String a60 = formSummary.getA60();
//            String a61 = formSummary.getA61();
//
//            List<String> xcNumbers = new ArrayList<>(); // 现场整改的问题编号
//            List<String> qxNumbers = new ArrayList<>(); // 期限整改的问题编号
//            if (StringUtils.isNotEmpty(a60)) {
//                JSONArray a60s = JSONObject.parseArray(a60);
//                List<String> list1 = JSONObject.parseArray(JSONObject.toJSONString(a60s.get(5)), String.class);
//                List<String> list2 = JSONObject.parseArray(JSONObject.toJSONString(a60s.get(6)), String.class);
//                if (list1.size() > 0) {
//                    xcNumbers.addAll(list1);
//                }
//                if (list2.size() > 0) {
//                    xcNumbers.addAll(list2);
//                }
//            }
//            if (StringUtils.isNotEmpty(a61)) {
//                JSONArray a60s = JSONObject.parseArray(a61);
//                List<String> list1 = JSONObject.parseArray(JSONObject.toJSONString(a60s.get(5)), String.class);
//                List<String> list2 = JSONObject.parseArray(JSONObject.toJSONString(a60s.get(6)), String.class);
//                if (list1.size() > 0) {
//                    qxNumbers.addAll(list1);
//                }
//                if (list2.size() > 0) {
//                    qxNumbers.addAll(list2);
//                }
//            }
//            String[] split = a23.split(",");
//            for (int i = 0; i < allDefaults.size(); i++) {
//                String s1 = split[i];
//                SafeCheckTaskParamDataDTO safe = allDefaults.get(i);
//                if (s1.equals("是")) {
//                    safe.setKey("true");
//                }
//                if (s1.equals("否")) {
//                    safe.setKey("false");
//                }
//                String number = String.valueOf(i + 1);
//                if (xcNumbers.size() > 0) {
//                    List<String> optional = xcNumbers.stream().filter(number::equals).collect(Collectors.toList());
//                    if (optional.size() > 0) {
//                        initRectificateTimeAndRiskType(rectificateTimeEnum, safe, f, formSummary);
//                        safe.setRectificationTypeCode(RectificateTimeEnum.IMMEDIATE_RECTIFICAIOTN.getCode()).setRectificationType(RectificateTimeEnum.IMMEDIATE_RECTIFICAIOTN.getName());
//                        continue;
//                    }
//                }
//
//                if (qxNumbers.size() > 0) {
//                    List<String> optional = qxNumbers.stream().filter(number::equals).collect(Collectors.toList());
//                    if (optional.size() > 0) {
//                        initRectificateTimeAndRiskType(rectificateTimeEnum, safe, f, formSummary);
//                        safe.setRectificationTypeCode(RectificateTimeEnum.DEADLINE_RECTIFICATION.getCode()).setRectificationType(RectificateTimeEnum.DEADLINE_RECTIFICATION.getName());
//                        continue;
//                    }
//                }
//            }
//            List<SafeCheckTaskParamDataDTO> existProblems = FireSafetyOnDayingRoadPdfService.getExistProblems(allDefaults, OtherPatrolContentsEnum.getProblemBaseVoDefaults());
//            ExtraProblemVo extraProblemVo = getExtraProblemVo(existProblems);
//            f.setOtherPatrolContents(allDefaults).setExtraOtherParam(extraProblemVo);
//        } else {
//            f.setOtherPatrolContents(allDefaults);
//        }
//        // 该场所是否配备灭火器
//        String a44 = formSummary.getA44(); // 灭火器数量
//        SafeCheckTaskParamDataDTO safe = DayingRoadProblemEnum.initData(DayingRoadProblemEnum.FORE);
//        if (StringUtils.isEmpty(a44)) {
//            errors.add("a44");
//            return;
//        }
//        SafeCheckTaskParamDataDTO notEquippedFire = allDefaults.stream().filter(e -> e.getFields().equals(OtherPatrolContentsEnum.FORETEEN.getCode())).findFirst().get();
//        if ("0".equals(a44)) {
//            safe.setKey("false").setRectificationMeasure(DictConstants.FIRE_EXTINGUISHERS_SERO);
//            safe.setRectificationTypeCode(notEquippedFire.getRectificationTypeCode())
//                    .setRectificationType(notEquippedFire.getRectificationType())
//                    .setRiskLevel(notEquippedFire.getRiskLevel())
//                    .setRiskLevelCode(notEquippedFire.getRiskLevelCode());
//        } else {
//            List<SysDictVO> sysDictVOS = allDictMap.get(DictConstants.FIRE_EXTINGUISHERS_LOCATION);
//            Optional<SysDictVO> first = sysDictVOS.stream().filter(e -> e.getName().equals(a44)).findFirst();
//            if (first.isPresent()) {
//                safe.setRectificationMeasure(first.get().getCode());
//            } else {
//                errors.add("a44" + a44);
//            }
//        }
//        f.setWhetherEquippedFire(safe);
//    }
//
//
//    private ExtraProblemVo getExtraProblemVo(List<SafeCheckTaskParamDataDTO> existProblems) {
//        ExtraProblemVo vo = new ExtraProblemVo();
//        // 存在的问题编号
//        List<Integer> existProblemIds = existProblems.stream()
//                .sorted(Comparator.comparing(SafeCheckTaskParamDataDTO::getRiskCode))
//                .map(SafeCheckTaskParamDataDTO::getRiskCode)
//                .map(Integer::valueOf)
//                .collect(Collectors.toList());
//        // 已整改的问题编号
//        List<Integer> existYesProblemIds = existProblems.stream()
//                .filter(SafeCheckTaskParamDataDTO::getIsRectification)
//                .sorted(Comparator.comparing(SafeCheckTaskParamDataDTO::getRiskCode))
//                .map(SafeCheckTaskParamDataDTO::getRiskCode)
//                .map(Integer::valueOf)
//                .collect(Collectors.toList());
//        // 未整改的问题编号
//        List<Integer> existNoProblemIds = existProblems.stream()
//                .filter(e -> RectificateTimeEnum.DEADLINE_RECTIFICATION.getCode().equals(e.getRectificationTypeCode()))
//                .sorted(Comparator.comparing(SafeCheckTaskParamDataDTO::getRiskCode))
//                .map(SafeCheckTaskParamDataDTO::getRiskCode)
//                .map(Integer::valueOf)
//                .collect(Collectors.toList());
//        // 立即整改的问题编号
//        List<Integer> existImmediateProblemIds = existProblems.stream()
//                .filter(e -> RectificateTimeEnum.IMMEDIATE_RECTIFICAIOTN.getCode().equals(e.getRectificationTypeCode()))
//                .sorted(Comparator.comparing(SafeCheckTaskParamDataDTO::getRiskCode))
//                .map(SafeCheckTaskParamDataDTO::getRiskCode)
//                .map(Integer::valueOf)
//                .collect(Collectors.toList());
//
//        vo.setExistProblems(existProblems)
//                .setExistProblemIds(existProblemIds)
//                .setExistYesProblemIds(existYesProblemIds)
//                .setExistNoProblemIds(existNoProblemIds)
//                .setExistImmediateProblemIds(existImmediateProblemIds)
//                .setIsProblemAllOne(existNoProblemIds.size() <= 0);
//
//        return vo;
//    }
//
//    private void buildKeySafetyIndustries(Sqfw_formSummary formSummary, FireSafetyOnDayingRoadPdfDTO f, List<String> errors, RectificateTimeEnum rectificateTimeEnum) {
//        String a64 = formSummary.getA64();
//        List<SafeCheckTaskParamDataDTO> allDefaults = KeySafetyIndustriesEnum.getAllDefaults();
//        if (StringUtils.isNotEmpty(a64)) {
////            List<List> jsonArray = JSONObject.parseArray(a64, List.class);
//            JSONArray jsonArray = JSONObject.parseArray(a64);
//            if (jsonArray.size() == 3) {
//                List<String> s1 = JSONObject.parseArray(JSONObject.toJSONString(jsonArray.get(0)), String.class);
//                List<String> s2 = JSONObject.parseArray(JSONObject.toJSONString(jsonArray.get(1)), String.class);
//                List<String> s3 = JSONObject.parseArray(JSONObject.toJSONString(jsonArray.get(2)), String.class);
//                if (s2.size() != 0) {
//                    errors.add("a64" + a64);
//                }
//                if (s3.size() != 0) {
//                    errors.add("a64" + a64);
//                }
//                for (int i = 0; i < allDefaults.size(); i++) {
//                    String str = s1.get(i);
//                    SafeCheckTaskParamDataDTO safe = allDefaults.get(i);
//                    if (str.equals("是")) {
//                        safe.setKey("true");
//                    }
//                    if (str.equals("否")) {
//                        safe.setKey("false");
//                    }
//                }
//            }
//        }
//        List<SafeCheckTaskParamDataDTO> existProblems = FireSafetyOnDayingRoadPdfService.getExistProblems(allDefaults, KeySafetyIndustriesEnum.getProblemBaseVoDefaults());
//        f.setKeySafetyIndustries(allDefaults).setExtraKeyParam(getExtraProblemVo(existProblems));
//    }
//
//    public static void main(String[] args) {
//        String a23 = "否,否,否,否,否,否,否,否,否,否,否,否,否,否,否,是,否,是,否,否,是,否,是,是,是";
//        List<SafeCheckTaskParamDataDTO> allDefaults = OtherPatrolContentsEnum.getAllDefaults();
//        if (StringUtils.isEmpty(a23)) {
//            return;
//        }
//        String[] split = a23.split(",");
//        for (int i = 0; i < allDefaults.size(); i++) {
//            String s1 = split[i];
//            SafeCheckTaskParamDataDTO safe = allDefaults.get(i);
//            if (s1.equals("是")) {
//                safe.setKey("true");
//            }
//            if (s1.equals("否")) {
//                safe.setKey("false");
//            }
//        }
//        System.out.println(allDefaults);
//
//
//
//
//    }
//    private void buildWhetherStapleFood(Sqfw_formSummary formSummary, FireSafetyOnDayingRoadPdfDTO f, List<String> errors, RectificateTimeEnum rectificateTimeEnum) {
//        String a28 = formSummary.getA28();
//        f.setWhetherStapleFood(false);
//        if (StringUtils.isNotEmpty(a28) && a28.equals("副食")) {
//            f.setWhetherStapleFood(true);
//        }
//    }
//    private void buildFoodProblem(Sqfw_formSummary formSummary, FireSafetyOnDayingRoadPdfDTO f, List<String> errors, RectificateTimeEnum rectificateTimeEnum) {
//        String a62 = formSummary.getA62();
//        if (StringUtils.isEmpty(a62)) {
//            List<SafeCheckTaskParamDataDTO> allDefaults = FoodSupervisionRecordsEnum.getAllDefaults();
//            List<SafeCheckTaskParamDataDTO> existProblems = FireSafetyOnDayingRoadPdfService.getExistProblems(allDefaults, FoodSupervisionRecordsEnum.getProblemBaseVoDefaults());
//            f.setFoodSupervisionRecords(allDefaults).setExtraFoodParam(getExtraProblemVo(existProblems));
//            return;
//        }
//        String[] split = a62.split(",");
//        List<SafeCheckTaskParamDataDTO> allDefaults = new ArrayList<>();
//        if (split.length == 9) {
//            int index = 1;
//            for (String str : split) {
//                FoodSupervisionRecordsEnum enumByNumber = FoodSupervisionRecordsEnum.getEnumByNumber(String.valueOf(index));
//                SafeCheckTaskParamDataDTO s = FoodSupervisionRecordsEnum.initData(enumByNumber);
//                Boolean isFlag = getYes(str, enumByNumber.getCode(), errors);
//                s.setKey("true");
//                if (isFlag != null && !isFlag) {
//                    s.setKey("false");
//                }
//                allDefaults.add(s);
//                index ++;
//            }
//            List<SafeCheckTaskParamDataDTO> existProblems = FireSafetyOnDayingRoadPdfService.getExistProblems(allDefaults, FoodSupervisionRecordsEnum.getProblemBaseVoDefaults());
//            f.setFoodSupervisionRecords(allDefaults).setExtraFoodParam(getExtraProblemVo(existProblems));
//        } else{
//            errors.add("a62");
//        }
//    }
//    private void buildGasStorage(Sqfw_formSummary formSummary, FireSafetyOnDayingRoadPdfDTO f, List<String> errors, RectificateTimeEnum rectificateTimeEnum,
//                                 Map<String, List<SysDictVO>> allDictMap) {
//        String a57 = formSummary.getA57();
//        if (StringUtils.isEmpty(a57)) {
//            return;
//        }
//        String[] split = a57.split("#");
//        String s1 = split[0];
//        f.setGasStorageTotal(s1);
//        log.info("dddddddd: {}, a57: {}", formSummary.getId(), a57);
//        if (split.length > 1) {
//            String s2 = split[1];
//            f.setAlcoholBasedFuelUse(getCode(s2, DictConstants.USING_FUEL_STORAGE_TYPES, "a57", errors, allDictMap));
//        } else {
//            System.out.println("111111111");
//        }
//    }
//    private void buildGasAlarmsNumber(Sqfw_formSummary formSummary, FireSafetyOnDayingRoadPdfDTO f, List<String> errors, RectificateTimeEnum rectificateTimeEnum) {
//        String a55 = formSummary.getA55();
//        if (StringUtils.isEmpty(a55)) {
//            return;
//        }
//        String[] split = a55.split("#");
//        String s1 = split[0]; // 数量
//        String s2 = split[1]; // 是否正常
//        SafeCheckTaskParamDataDTO gasAlarmsNumber = new SafeCheckTaskParamDataDTO(); // 燃气报警器的数量
//        gasAlarmsNumber.setKey(s1);
//
//        SafeCheckTaskParamDataDTO isAlarmNormal = new SafeCheckTaskParamDataDTO(); // 报警器使用是否正常(报警器大于0显示)
//        if ("否".equals(s2)) {
//            initRectificateTimeAndRiskType(rectificateTimeEnum, isAlarmNormal, f, formSummary);
//            isAlarmNormal.setKey("false").setIsRectification(RectificateTimeEnum.isNowRectification(isAlarmNormal.getRectificationTypeCode())).setProblemDesc("未安装燃气报警器");
//        }
//        if ("是".equals(s2)) {
//            isAlarmNormal.setKey("true");
//        }
//        f.setIsAlarmNormal(isAlarmNormal); // 报警器使用是否正常(报警器大于0显示)
//        if ("0".equals(s1)) {
//            initRectificateTimeAndRiskType(rectificateTimeEnum, gasAlarmsNumber, f, formSummary);
//            gasAlarmsNumber.setIsRectification(RectificateTimeEnum.isNowRectification(gasAlarmsNumber.getRectificationTypeCode())).setProblemDesc("未安装燃气报警器");
//        }
//        f.setGasAlarmsNumber(gasAlarmsNumber);
//    }
//    private void buildIsBlackAlcoholUsed(Sqfw_formSummary formSummary, FireSafetyOnDayingRoadPdfDTO f, List<String> errors, RectificateTimeEnum rectificateTimeEnum) {
//        String a50 = formSummary.getA50();
//        SafeCheckTaskParamDataDTO s = DayingRoadProblemEnum.initData(DayingRoadProblemEnum.NINE);
//        if (StringUtils.isEmpty(a50)) {
//            f.setIsBlackAlcoholUsed(s);
//            return;
//        }
//        if ("否".equals(a50)) {
//            f.setIsBlackAlcoholUsed(s);
//            return;
//        }
//        errors.add("a50");
//    }
//
//    private void buildIsCombustiblEexplosive(Sqfw_formSummary formSummary, FireSafetyOnDayingRoadPdfDTO f, List<String> errors, RectificateTimeEnum rectificateTimeEnum) {
//        String a49 = formSummary.getA49();
//        SafeCheckTaskParamDataDTO s = DayingRoadProblemEnum.initData(DayingRoadProblemEnum.EIGHT);
//        if (StringUtils.isEmpty(a49)) {
//            f.setIsCombustiblEexplosive(s);
//            return;
//        }
//        if ("否".equals(a49)) {
//            f.setIsCombustiblEexplosive(s);
//            return;
//        }
//        errors.add("a49");
//    }
//    private void buildOtherHiddenDangers(Sqfw_formSummary formSummary, RectificateTimeEnum rectificateTimeEnum, FireSafetyOnDayingRoadPdfDTO f, List<String> errors) {
//        String a20 = formSummary.getA20();
//        if (StringUtils.isNotEmpty(a20)) {
//            List<SafeCheckTaskParamDataDTO> otherHiddenDangers = new ArrayList<>();
//            SafeCheckTaskParamDataDTO s = getSafeCheckTaskParamDataDTO(DayingRoadProblemEnum.TWELVE, rectificateTimeEnum, f.getRiskType(), formSummary.getA17(), "其他隐患");
//            if (!a20.equals("无")) {
//                s.setKey("true").setIsRectification(true).setProblemDesc(a20).setRectificationMeasure(a20);
//            }
//            s.setRiskImages(formSummary.getA9()).setRectificationBackPhoto(formSummary.getA10());
//            otherHiddenDangers.add(s);
//            f.setOtherHiddenDangers(otherHiddenDangers);
//            return;
//        }
//    }
//
//    private void buildFireHighUsageArea(Sqfw_formSummary formSummary, FireSafetyOnDayingRoadPdfDTO f, List<String> errors, RectificateTimeEnum rectificateTimeEnum) {
//        String a48 = formSummary.getA48();
//        SafeCheckTaskParamDataDTO s = DayingRoadProblemEnum.initData(DayingRoadProblemEnum.SEVEN);
//        if (StringUtils.isEmpty(a48)) {
//            f.setFireHighUsageArea(s);
//            return;
//        }
//        if ("否".equals(a48)) {
//            f.setFireHighUsageArea(s);
//            return;
//        }
//        String[] split = a48.split(":");
//        String s1 = split[0];
//        if ("其他".equals(s1)) {
//            s.setKey(DictConstants.FLAMES_HIGH_HEAT_OTHER).setIsRectification(false).setProblemDesc("使用明火、高温加热、取暖设备").setRectificationMeasure(split[1]);
//            initRectificateTimeAndRiskType(rectificateTimeEnum, s, f, formSummary);
//            return;
//        }
//        errors.add("a48");
//    }
//    private void buildElectricBicyclesUse(Sqfw_formSummary formSummary, FireSafetyOnDayingRoadPdfDTO f, List<String> errors, RectificateTimeEnum rectificateTimeEnum) {
//        String a47 = formSummary.getA47();
//        SafeCheckTaskParamDataDTO s = DayingRoadProblemEnum.initData(DayingRoadProblemEnum.SIX);
//        if (StringUtils.isEmpty(a47)) {
//            f.setElectricBicyclesUse(s);
//            return;
//        }
//        if ("无".equals(a47)) {
//            f.setElectricBicyclesUse(s);
//            return;
//        }
//        if ("没有使用电动自行车".equals(a47)) {
//            f.setElectricBicyclesUse(s);
//            return;
//        }
//        if ("室内充电".equals(a47)) {
//            s.setKey(DictConstants.BICYCLES_INDOOR).setIsRectification(false).setProblemDesc("电动自行车进行室内充电");
//            initRectificateTimeAndRiskType(rectificateTimeEnum, s, f, formSummary);
//            f.setElectricBicyclesUse(s);
//            return;
//        }
//        if ("室外充电".equals(a47)) {
//            s.setKey(DictConstants.BICYCLES_OUTDOOR).setIsRectification(false).setProblemDesc("电动自行车进行室外充电");
//            initRectificateTimeAndRiskType(rectificateTimeEnum, s, f, formSummary);
//            f.setElectricBicyclesUse(s);
//            return;
//        }
//        if ("飞线充电".equals(a47)) {
//            s.setKey(DictConstants.BICYCLES_FLYWIRE).setIsRectification(false).setProblemDesc("电动自行车进行飞线充电");
//            initRectificateTimeAndRiskType(rectificateTimeEnum, s, f, formSummary);
//            f.setElectricBicyclesUse(s);
//            return;
//        }
//        errors.add("a47");
//    }
//
//
//    // 构建隐患级别和整改时限
//    private void initRectificateTimeAndRiskType(RectificateTimeEnum rectificateTimeEnum, SafeCheckTaskParamDataDTO s, FireSafetyOnDayingRoadPdfDTO f, Sqfw_formSummary formSummary) {
//        s.setRectificationTypeCode(rectificateTimeEnum.getCode()).setRectificationType(rectificateTimeEnum.getName()).setRiskLevel(formSummary.getA17()).setRiskLevelCode(f.getRiskType());
//    }
//
//    private void buildElectricalCircuitSituation(Sqfw_formSummary formSummary, FireSafetyOnDayingRoadPdfDTO f, List<String> errors, RectificateTimeEnum rectificateTimeEnum) {
//        String a46 = formSummary.getA46();
//        SafeCheckTaskParamDataDTO s = DayingRoadProblemEnum.initData(DayingRoadProblemEnum.FIVE);
//        if (StringUtils.isEmpty(a46)) {
//            f.setElectricalCircuitSituation(s);
//            return;
//        }
//        if (a46.equals("合格")) {
//            f.setElectricalCircuitSituation(s);
//            return;
//        }
//        if (a46.equals("超负荷用电")) {
//            initRectificateTimeAndRiskType(rectificateTimeEnum, s, f, formSummary);
//            s.setKey(DictConstants.ELECTRICAL_CIRCUIT_CONSUMPTION)
//                    .setIsRectification(RectificateTimeEnum.isNowRectification(s.getRectificationTypeCode()))
//                    .setProblemDesc("电气线路超负荷用电");
//            f.setElectricalCircuitSituation(s);
//            return;
//        }
//        if (a46.equals("乱拉乱接")) {
//            initRectificateTimeAndRiskType(rectificateTimeEnum, s, f, formSummary);
//            s.setKey(DictConstants.ELECTRICAL_CIRCUIT_RANDOMLY)
//                    .setIsRectification(RectificateTimeEnum.isNowRectification(s.getRectificationTypeCode()))
//                    .setProblemDesc("电气线路乱拉乱接");
//            f.setElectricalCircuitSituation(s);
//            return;
//        }
//        if (a46.equals("使用假冒伪劣产品")) {
//            initRectificateTimeAndRiskType(rectificateTimeEnum, s, f, formSummary);
//            s.setKey(DictConstants.ELECTRICAL_CIRCUIT_PRODUCTS)
//                    .setIsRectification(RectificateTimeEnum.isNowRectification(s.getRectificationTypeCode()))
//                    .setProblemDesc("电气线路使用假冒伪劣产品");
//            f.setElectricalCircuitSituation(s);
//            return;
//        }
////        if (a46.equals("其他")) {
////            s.setKey(DictConstants.ELECTRICAL_CIRCUIT_OTHER).setRectificationMeasure(a46);
////            f.setElectricalCircuitSituation(s);
////            return;
////        }
//        errors.add("a46");
//        // 都不在上面 异常 统一处理
//    }
//
//
//    private void buildFireOtherIssues(Sqfw_formSummary formSummary, FireSafetyOnDayingRoadPdfDTO f) {
//        String a45 = formSummary.getA45();
//        SafeCheckTaskParamDataDTO safe = DayingRoadProblemEnum.initData(DayingRoadProblemEnum.THIRTEEN);
//        if (a45 == null || a45.equals("无")) {
//            safe.setRectificationMeasure("无");
//            f.setFireOtherIssues(safe);
//            return;
//        }
//        safe.setKey("true").setRectificationMeasure(a45).setIsRectification(false).setProblemDesc("消防设施的其他问题");
//        f.setFireOtherIssues(safe);
//    }
//
//    private void buildIndoorFireHydrant(Sqfw_formSummary formSummary, FireSafetyOnDayingRoadPdfDTO f, RectificateTimeEnum rectificateTimeEnum) {
//        SafeCheckTaskParamDataDTO s = DayingRoadProblemEnum.initData(DayingRoadProblemEnum.THREE);
//        String a43 = formSummary.getA43();
//        if (StringUtils.isNotEmpty(a43)) {
//            if ("有".equals(a43)) {
//                s.setKey("true");
//                f.setIndoorFireHydrant(s);
//                return;
//            }
//            if ("无".equals(a43)) {
//                s.setKey("false");
//                f.setIndoorFireHydrant(s);
//                return;
//            }
//            if (a43.contains("其他")) {
//                s.setKey("false");
//                String[] split = a43.split(":");
//                String s1 = split[0];
//                if (split.length > 1) {
//                    String s2 = split[1];
//                    List<SafeCheckTaskParamDataDTO> otherHiddenDangers = f.getOtherHiddenDangers();
//                    if (StringUtils.isNotEmpty(s2) && !s2.equals("无")) {
//                        if (otherHiddenDangers != null && otherHiddenDangers.size() > 0) {
//                            SafeCheckTaskParamDataDTO safeCheckTaskParamDataDTO = otherHiddenDangers.get(0);
//                            safeCheckTaskParamDataDTO.setRectificationMeasure(s2);
//                        } else {
//                            SafeCheckTaskParamDataDTO safe1 = getSafeCheckTaskParamDataDTO(DayingRoadProblemEnum.TWELVE, rectificateTimeEnum, f.getRiskType(), formSummary.getA17(), "其他隐患");
//                            safe1.setKey("true").setIsRectification(true).setProblemDesc("其他隐患");
//                            safe1.setRiskImages(formSummary.getA9()).setRectificationBackPhoto(formSummary.getA10());
//                            otherHiddenDangers.add(safe1);
//                            f.setOtherHiddenDangers(otherHiddenDangers);
//                        }
//                    }
//                }
//                f.setIndoorFireHydrant(s);
//                return;
//            }
//        }
//    }
//
//
//
////    private void buildWhetherEquippedFire(Sqfw_formSummary formSummary, FireSafetyOnDayingRoadPdfDTO f) {
////        SafeCheckTaskParamDataDTO s = DayingRoadProblemEnum.initData(DayingRoadProblemEnum.FORE);
////        String a44 = formSummary.getA44();
////        if (StringUtils.isEmpty(a44)) {
////            return;
////        }
////        String code = getCode(a44, DictConstants.FIRE_EXTINGUISHERS_LOCATION);
////        if (DictConstants.FIRE_EXTINGUISHERS_SERO.equals(code)) {
////            s.setKey("false").setRectificationMeasure(code);
////        }
////    }
//
//
//    private SafeCheckTaskParamDataDTO isHive(String value, SafeCheckTaskParamDataDTO s, String fields, List<String> errors) {
//        if (StringUtils.isNotEmpty(value)) {
//            if ("有".equals(value)) {
//                s.setKey("true");
//                return s;
//            }
//            if ("无".equals(value)) {
//                s.setKey("false");
//                return s;
//            }
//            errors.add(fields);
//        }
//        return s;
//    }
//
//    // 住人形式
//    private void buildAccommodatePeopleVo(Sqfw_formSummary formSummary, FireSafetyOnDayingRoadPdfDTO f, List<String> errors, Map<String, List<SysDictVO>> allDictMap) {
//        String a33 = formSummary.getA33();
//        AccommodatePeopleVo a = new AccommodatePeopleVo();
//        if (StringUtils.isEmpty(a33)) {
//            // 没有住人 属于没有住人
//            a.setResidentialType(DictConstants.RESIDENTS_FORM_STAY_NOPERSON);
//            f.setAccommodatePeople(a);
//            return;
//        }
//        a.setResidentialNum(formSummary.getA34()).setResidentialLayerNum(formSummary.getA35());
//        if (a33.equals("没有住人")) {
//            a.setResidentialType(DictConstants.RESIDENTS_FORM_STAY_NOPERSON);
//        }
//        // 整改时限
//        String a39 = formSummary.getA39();
//        String a40 = formSummary.getA40();
//        if (StringUtils.isNotEmpty(a39) && StringUtils.isNotEmpty(a40)) {
//            a.setRectificateType(RectificateTimeEnum.IMMEDIATE_RECTIFICAIOTN.getCode()).setRectificateTypeName(RectificateTimeEnum.IMMEDIATE_RECTIFICAIOTN.getName());
//        }else {
//            a.setRectificateType(RectificateTimeEnum.DEADLINE_RECTIFICATION.getCode()).setRectificateTypeName(RectificateTimeEnum.DEADLINE_RECTIFICATION.getName());
//        }
//        a.setHazardLevelType(f.getRiskType());
//        a.setViolationPhoto(a39).setRectificationAfterPhoto(a40);
//        if (a33.equals("前店后住")) {
//            a.setResidentialType(DictConstants.RESIDENTS_FORM_STAY_STORE)
//                    .setIsRectification(RectificateTimeEnum.isNowRectification(a.getRectificateType()))
//                    .setProblemDesc("该场所住人形式为前店后住");
//        }
//        if (a33.equals("下店上住")) {
//            a.setResidentialType(DictConstants.RESIDENTS_FORM_IN_AND_OUT)
//                    .setIsRectification(RectificateTimeEnum.isNowRectification(a.getRectificateType()))
//                    .setProblemDesc("该场所住人形式为下店上住");
//        }
//        if (a33.equals("夹层住人")) {
//            a.setResidentialType(DictConstants.RESIDENTS_FORM_DWELLING)
//                    .setIsRectification(RectificateTimeEnum.isNowRectification(a.getRectificateType()))
//                    .setProblemDesc("该场所住人形式为夹层住人");
//        }
//        // 其他:2023年3月16日已清理，每周开展巡查，本周已巡查
//        if (a33.contains("其他")) {
//            String[] split = a33.split(":");
//            a.setResidentialType(DictConstants.RESIDENTS_FORM_OTHER)
//                    .setOther(split.length > 1 ? split[1] : null)
//                    .setIsRectification(RectificateTimeEnum.isNowRectification(a.getRectificateType()))
//                    .setProblemDesc("该场所住人形式为其他");
//        }
//        a.setSafeExport(getCode(formSummary.getA36(), DictConstants.RESIDENTS_SAFE_EXPOPRT, "a36", errors, allDictMap));
//        a.setResidentsEscapeWindow(getCode(formSummary.getA37(), DictConstants.RESIDENTS_ESCAPE_WINDOW, "a37", errors, allDictMap));
//        // 经营与住区域是否有防火分隔
//        SafeCheckTaskParamDataDTO residentialAreas = new SafeCheckTaskParamDataDTO();
//        String a38 = formSummary.getA38();
//        if (StringUtils.isNotEmpty(a38)) {
//            String[] a32s = a38.split("#");
//            String s1 = a32s[0];
//            if (s1.equals("有")) {
//                residentialAreas.setKey("true");
//            }
//            if (s1.equals("无")) {
//                residentialAreas.setKey("false");
//            }
//            if (a32s.length > 1) {
//                residentialAreas.setRectificationMeasure(a32s[1]);
//                a.setResidentialAreas(residentialAreas);
//            }
//        }
//    }
//
//
//    private void buildSandwichingVo(Sqfw_formSummary formSummary, FireSafetyOnDayingRoadPdfDTO f) {
//        String a29 = formSummary.getA29();
//        if (StringUtils.isEmpty(a29)) {
//            throw new AppException("数据异常");
//        }
//        SandwichingVo s = new SandwichingVo();
//        if (a29.equals("否")) {
//            s.setSandwiching(false).setDictId(DictConstants.SANDWICH_USE_NO);
//        }
//        if ("库房".equals(a29)) {
//            s.setSandwiching(true).setDictId(DictConstants.SANDWICH_USE_STOREROOM).setDjJcNum(formSummary.getA30());;
//        }
//        if ("居住".equals(a29)) {
//            s.setSandwiching(true).setDictId(DictConstants.SANDWICH_USE_LIVE).setDjJcNum(formSummary.getA30());
//        }
//        // 夹层楼板
//        SafeCheckTaskParamDataDTO mezzaninFfloorSlab = new SafeCheckTaskParamDataDTO();
//        String a31 = formSummary.getA31();
//        if (StringUtils.isNotEmpty(a31)) {
//            if (a31.equals("经过防火处理的钢板")) {
//                mezzaninFfloorSlab.setKey(DictConstants.MEZZANINE_FLOOR_SLAB_PLATE);
//            }
//            if (a31.equals("钢筋混凝土")) {
//                mezzaninFfloorSlab.setKey(DictConstants.MEZZANINE_FLOOR_SLAB_CONCRETE);
//            }
//        }
//        s.setMezzaninFfloorSlab(mezzaninFfloorSlab);
//        // 楼梯建筑材料
//        SafeCheckTaskParamDataDTO staircaseBuildingMaterials = new SafeCheckTaskParamDataDTO();
//        String a32 = formSummary.getA32();
//        if (StringUtils.isNotEmpty(a32)) {
//            String[] a32s = a32.split("#");
//            String a320 = a32s[0];
//            if (a32s.length == 1) {
//                if (a320.equals("不燃材料")) {
//                    staircaseBuildingMaterials.setKey(DictConstants.STAIRCASE_BUILD_MATERIALS_INCOMBUSTIBLE);
//                }
//            } else {
//                if (a320.equals("不燃材料")) {
//                    staircaseBuildingMaterials.setKey(DictConstants.STAIRCASE_BUILD_MATERIALS_INCOMBUSTIBLE)
//                            .setRectificationMeasure(a32s[1]);
//                }
//            }
//        }
//        s.setStaircaseBuildingMaterials(staircaseBuildingMaterials);
//        f.setSandwichConstructionUse(s);
//    }
//
//    private SafeCheckTaskParamDataDTO getSafeCheckTaskParamDataDTO(DayingRoadProblemEnum problemEnum, RectificateTimeEnum rectificateTimeEnum, String riskType, String riskTypeName, String proDesc) {
//        SafeCheckTaskParamDataDTO s = DayingRoadProblemEnum.initData(problemEnum);
//        if (rectificateTimeEnum != null) {
//            s.setRectificationType(rectificateTimeEnum.getName())
//                    .setIsRectification(RectificateTimeEnum.isNowRectification(rectificateTimeEnum.getCode()))
//                    .setProblemDesc(proDesc)
//                    .setRectificationTypeCode(rectificateTimeEnum.getCode());
//        }
//        if (StringUtils.isNotEmpty(riskType)) {
//            s.setRiskLevel(riskTypeName).setRiskLevelCode(riskType);
//        }
//        return s;
//    }
//}
